package com.sm.service;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

import com.sm.model.GoodsRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sm.dao.GoodsRecordMapper;

/**
 *	商品搜索历史记录service层
 * @author 60915
 */
@Service
public class GoodsRecordService {

	@Autowired
	private GoodsRecordMapper goodsRecordMapper;

	/**
	 *	圆梦超市根据用户id查询用户的搜索的商品的历史记录
	 * @param userId	用户id
	 */
	public void selectGoods(Integer userId,String searchContent) {
		//根据用户id查询用户的搜索商品历史记录
		List<GoodsRecord> goodsRecords = goodsRecordMapper.selectGoodsRecord(userId);

		//未完待续判断goodsRecords是否为空为空的话直接插入搜索记录。不为空的话看看是否存在，若不存在直接插入，若存在更新记录时间。
		if(goodsRecords != null && goodsRecords.size() != 0) {//判断查询到的商品搜索历史记录不为空

			boolean flag = false;//定义一个搜索记录不存在
			for (GoodsRecord goodsRecord : goodsRecords) {//遍历所有的搜索历史记录
				if(goodsRecord.getGoodsRecordCont().equals(searchContent)) {
					goodsRecord.setGoodsRecordTime(new Date());//设置商品搜索历史记录时间为当前时间
					goodsRecordMapper.updateByPrimaryKeySelective(goodsRecord);//修改搜索历史记录
					flag = true;
					break;
				}
			}

			if(flag == false) {
				GoodsRecord goodsRecord = new GoodsRecord();//创建一个搜索商品的历史记录实体类
				goodsRecord.setGoodsRecordCont(searchContent);//设置搜索内容
				goodsRecord.setGoodsRecordTime(new Date());//设置当前时间

				goodsRecord.setUserId(userId);//设置用户id
				goodsRecordMapper.insertSelective(goodsRecord);//插入搜索实体类进入数据库
			}

		}else {
			GoodsRecord goodsRecord = new GoodsRecord();//创建一个搜索商品的历史记录实体类
			goodsRecord.setGoodsRecordCont(searchContent);//设置搜索内容
			goodsRecord.setGoodsRecordTime(new Date());//设置当前时间
			goodsRecord.setUserId(userId);//设置用户id
			goodsRecordMapper.insertSelective(goodsRecord);//插入搜索实体类进入数据库
		}
	}

	/**
	 *	根据用户id搜索商品的搜索记录
	 * @param userId	用户id
	 * @return
	 */
	public List<GoodsRecord> selectGoodsRecord(Integer userId){
		//根据用户id查询用户的搜索商品历史记录并根据时间排序
		List<GoodsRecord> goodsRecords = goodsRecordMapper.selectGoodsRecord(userId);
		return goodsRecords;
	}

	/**
	 *	通过用户id清空商品的搜索记录
	 * @param userId	用户id
	 * @return
	 */
	public int cleanGoodsRecord(Integer userId) {
		return goodsRecordMapper.cleanGoodsRecord(userId);
	}








}
